package io.zhiller.commonlib.data.models

import android.content.Context

/**
 * 权限状态枚举类
 * 表示应用请求权限时可能处于的不同状态
 */
enum class PermissionStatus {
  NotAsked,
  Granted,
  Denied,
  PermanentlyDenied
}

/**
 * 权限模型类
 * 用于封装应用权限请求的结果，包括权限的状态以及相应的详细信息
 *
 * @param permission 权限的名称，例如"android.permission.READ_CONTACTS"
 * @param permissionsStatus 权限的当前状态，使用PermissionStatus枚举表示
 * @param permissionDeniedDetail 当权限被拒绝时的详细信息
 * @param permissionPermanentlyDeniedDetail 当权限被永久拒绝时的详细信息
 * @param permissionGrantedDetail 当权限被授予时的详细信息，默认为空字符串
 */
data class PermissionModel(
  val permission: String,
  var permissionsStatus: PermissionStatus,
  val permissionDeniedDetail: String,
  val permissionPermanentlyDeniedDetail: String,
  val permissionGrantedDetail: String = ""
)
